Autonomous systems (such as robots) are usually equipped with sensors to sense the surrounding environment. The sensor readings are interpreted into estimations upon which the robot decides how to act. Unfortunately, sensors are susceptible to faults. These faults might lead to task failure. Detecting these faults and diagnosing a fault's origin is an important task that should be performed quickly online.
The use of robots in daily civilian and military life is increasing. Robots can replace humans in certain tasks that are too boring or too dangerous. However, these sophisticated and sometimes very expensive machines are susceptible to faults. A fault has the potential to cause mission failure or even to endanger the system itself or its surrounding e.g., a UAV (Unmanned Aerial Vehicle) can crash due to a fault.
Faults are not restricted just to hardware wear and tear. Long before a robot tries to activate some actuator it should sense the ever changing dynamic environment and compute its estimations over the world. It then needs to make choices of how to behave, and send the command to the relevant controllers to activate the actuators. Based on its actions, the world changes; thus the described operation proceeds iteratively. For example, a robot's laser distance sensor returns a reading. This reading derives an estimation, i.e., the distance to a target object. The decision making process of the robot might decide to move towards the target object. This decision is translated to the execution of a set of commands from the robot's API. Each command activates some actuators, like the robot's wheels. As the robot is getting closer to the target, the sensors react accordingly and the estimation is updated.
At each step of this cycle, a fault might occur, either due to false sensing or runtime errors (in the operating system of the robot) or due to a hardware failure. These faults need to be detected quickly and diagnosed. For example, if the code that computes the distance to the target crashes, then the robot might continue to move forever. The same can happen if the laser sensor returns a constant value or deviated from the target, or if the wheels are spinning in place.
Steinbauer et al. (A survey on the nature of faults of autonomous robot systems, ICRA Workshop on Automated Diagnosis, Repair and Re-Configuration of Robot Systems, Shanghai, China, 2011) conducted a survey on the nature of faults of autonomous robot systems. The survey participants are the developers competing in the different leagues of the Robocup competition (an annual international robotics competition). Steinbauer et al. concluded that internal hardware components such as batteries and motors are most affected by faults to connectors or communication, and are critical to mission success. They categorize these faults as platform faults. Furthermore, configuration problems greatly affect sensors, and sensors faults have similar frequency but a higher negative impact than platform faults.
Khalastchi et al. (“Online Anomaly Detection in Unmanned Vehicles”, the 10th International Conference on Autonomous Agents and Multi-Agent Systems, 2011, pp. 115-122) discloses a model free, unsupervised and online approach for anomaly detection, which uses a structural model to isolate the faulty component or sensor and thus provide diagnosis and addresses faults that their symptoms appear only over time. This approach determines which sensors are correlated, and per each correlated set of sensors, their current-input's degree of being an outlier with respect to previous inputs is measured, using the Mahalanobis Distance (a descriptive statistic that provides a relative measure of a data point's distance from a common point).
Pokrajac et al. (“Incremental Local Outlier Detection for Data Streams”, CIDM 2007, IEEE Symposium) discloses an incremental Local Outlier Factor (LOF) algorithm, for detecting outliers and changes of distributional behavior in various data stream applications.
There are two faults in particular that are hard to detect: (1) Stuck—the sensor returns the same reading regardless the real state, and (2) Drift—the sensor returns values which continually drift upwards (or downwards) from the real state.
The stuck fault may indicate data that is in a range of the truthful readings, and the drift may change very slowly maintaining the correct range of the sensor. Both kinds of fault express abnormal behavior. On the other hand, even an intact sensor can sometimes produce values that appear to be stuck or drifting as a reaction to the robot's current action. Thus, these faults are challenging to detect.
There are several fault detection approaches as analytical methods, data-driven or knowledge-based systems. Analytical approaches use mathematical models to compare expected outputs with observed outputs and derive a residual that is used to determine whether or not a fault has occurred. However, this approach requires expressing all the behavioral laws of every component in mathematical equations, which is a very hard task.
Data-driven approaches are model-free statistical methods. The online data of the autonomous system is processed and is searched for outliers. These outliers may indicate a fault. Data-driven have the advantage of being model-free. However, these approaches carry some disadvantages as well.
From engineering point of view, some knowledge about the system is available and it is not put into use when applying an approach which is purely data driven. Autonomous systems can provide lots of data. If the entire data is processed it will become impractical to detect faults quickly and online as the domain of autonomous systems demands. Collected data from manufactures is typically not classified for fault/non fault examples. Moreover, even data that is considered to be fault free might contain hidden faults and anomalies.
Faults of one-dimensional sensors may appear in a variety of forms. For example, the Advanced Diagnostics and Prognostics Testbed system (ADAPT—NASA Ames Research Center, CA U.S.A.) depicts the following faults to sensors on an electrical circuit: “stuck” where all values produced by the sensor are the same, “drift” where the values show a movement towards higher (or lower) values, and “abrupt” where there is a sudden large increase (or decrease) in the sensor's values. When a sensor has a state such as stuck or drift, it might be the result of the robot's action and not a fault (e.g. a UAV climb might appear as an altitude drift). Since only the robot's perception is available, correlated sensors are used for comparison. The approach suggested here, compares the state of correlated sensors which do not share component dependency. The same logical assumption is applied in both approaches. If two sensors are correlated they should react in the same manner to the robot's behavior. However, if the two sensors show different behaviors then it might be due to a fault.
Hashimoto et al. (“A multi-model based fault detection and diagnosis of internal sensors for mobile robot”, Intelligent Robots and Systems, 2003 pp. 3787-3792) use Kalman filters along with kinematical models to diagnose “stuck” and “abrupt” faults to sensors of a mobile robot, as well as “scale” faults, where the (gain) scale of the sensor output differs from the normal.
It is therefore an object of the present invention to provide method for detecting and diagnosing sensor faults online, which overcomes the limitations of prior art systems.
It is another object of the present invention to provide method for detecting and diagnosing sensor faults, which has low fault detection and provides an accurate diagnosis.
It is a further object of the present invention to provide method for detecting and diagnosing sensor faults, which isolates the faulty component/sensor.
Other objects and advantages of the invention will become apparent as the description proceeds.